Creating a combined video vignette

ABSTRACT

A method and system for capturing, sharing, viewing, and/or displaying one or more videos. A user of a computing device performs a gesture involving contacting a touch sensitive display. In response, a video segment is captured while the user maintains contact with the touch sensitive display. Upon releasing contact with the touch sensitive display, recording of the video segment is ceased. In one or more embodiments of the invention, the user may then record one or more additional video segments to be included in a video vignette.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of, and claims priority to, U.S.patent application Ser. No. 16/781,290, filed on Feb. 4, 2020, entitled“USER INTERFACE FOR A VIDEO CAPTURE DEVICE,” which is a continuation ofU.S. patent application Ser. No. 14/201,435, filed on Mar. 7, 2014,entitled “CAPTURE, SHARING, AND DISPLAY OF A PERSONAL VIDEO VIGNETTE,”now U.S. Pat. No. 10,592,089, which is a continuation of U.S. patentapplication Ser. No. 13/851,037, filed on Mar. 26, 2013, entitled“CAPTURE, SHARING, AND DISPLAY OF A PERSONAL VIDEO VIGNETTE,” nowabandoned, all of which are non-provisional applications of, and claimpriority to, U.S. Provisional Application No. 61/719,365, filed on Oct.26, 2012, entitled “PERSONAL VIDEO VIGNETTE.” The disclosures of U.S.patent application Ser. No. 16/781,290, U.S. patent application Ser. No.14/201,435, U.S. patent application Ser. No. 13/851,037, and U.S.Provisional Application No. 61/719,365 are incorporated by referenceherein in their entireties.

BACKGROUND

Current video sharing technologies allow users to record and sharevideos from their mobile device within seconds. Social media networksallow for the sharing of videos and other user-generated contentglobally and in real time. As the video and multi-media capability ofmobile devices expands, users are able to capture and share betterquality videos faster and more efficiently.

User interfaces for capturing and sharing videos are also evolving.Better quality touch sensitivity and higher resolutions in displaydevices has led to the development of a variety of new methods of userinteraction. For example, multi-touch gestures have become prevalent inmobile applications on a variety of devices. Also, facial recognitiontechnology has led to easier tagging and identification of images andvideos.

This combination of advancing hardware and software technologies has ledto a vast increase in user engagement with videos and other media on theweb.

SUMMARY

In general, in one aspect, the invention relates to a method for videocapture. The method includes: detecting a gesture performed by a user ona touch sensitive display; initiating recording of a video in responseto detecting the gesture, wherein the recording continues while the usermaintains contact with the touch sensitive display; detecting that theuser has released contact with the touch sensitive display; and stoppingrecording of the video in response to detecting that the user hasreleased contact.

In general, in one aspect, the invention relates to a mobile device. Themobile device includes: a computer processor; a user interface moduleexecuting on the computer processor and configured to detect a gestureperformed by a user on a touch sensitive display, and detect that theuser has released contact with the touch sensitive display; and anapplication module executing on the computer processor and configured toinitiate recording of a video in response to detecting the gesture,wherein the recording continues while the user maintains contact withthe touch sensitive display; and stop recording of the video in responseto detecting that the user has released contact.

In general, in one aspect, the invention relates to a non-transitorycomputer readable medium comprising instructions for video capture. Theinstructions include functionality to execute on at least one computerprocessor to enable the computer processor to: detect a gestureperformed by a user on a touch sensitive display; initiate recording ofa video in response to detecting the gesture, wherein the recordingcontinues while the user maintains contact with the touch sensitivedisplay; detect that the user has released contact with the touchsensitive display; and stop recording of the video in response todetecting that the user has released contact.

In general, in one aspect, the invention relates to a system for sharinga video vignette. The system includes a computer processor and a remoteprocessing module executing on the computer processor and configured to:receive a first video from a first mobile device, wherein the firstvideo is posted to a first account of a social media platform; receive asecond video from a second mobile device, wherein the second video isposted to a second account of the social media platform; combine thefirst video and the second video into a looping video vignette; andshare the looping video vignette with a plurality of connected accountsof the social media platform having a predefined graph relationship withone selected from a group consisting of the first account and the secondaccount.

Other aspects of the invention will be apparent from the followingdescription and the appended claims.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 shows a schematic diagram of a system in accordance with one ormore embodiments of the invention.

FIGS. 2-9 show flowcharts in accordance with one or more embodiments ofthe invention.

FIGS. 10-13 show example screenshots of mobile devices in accordancewith one or more embodiments of the invention.

FIG. 14 shows a mobile device in accordance with one or more embodimentsof the invention.

FIG. 15 shows a computer system in accordance with one or moreembodiments of the invention.

DETAILED DESCRIPTION

Specific embodiments of the invention will now be described in detailwith reference to the accompanying figures. Like elements in the variousfigures are denoted by like reference numerals for consistency.

In the following detailed description of embodiments of the invention,numerous specific details are set forth in order to provide a morethorough understanding of the invention. However, it will be apparent toone of ordinary skill in the art that the invention may be practicedwithout these specific details. In other instances, well-known featureshave not been described in detail to avoid unnecessarily complicatingthe description.

In general, embodiments of the invention provide a method and system forcapturing, sharing, viewing, and/or displaying one or more videosegments. A user of a computing device performs a gesture involvingcontacting a touch sensitive display. In response, a video segment iscaptured while the user maintains contact with the touch sensitivedisplay. Upon releasing contact with the touch sensitive display, therecording for that segment is ceased. In one or more embodiments of theinvention, the user then proceeds to record one or more additionalsegments of a video vignette (e.g., using the same hold-and-releasegesture). Upon reaching a predefined length threshold, the videovignette is finalized.

FIG. 1 shows a system (199) in accordance with one or more embodimentsof the invention. As shown in FIG. 1, the system (199) has multiplecomponents including a social media platform (150) and a clientcomputing device (100) with an application module (105), a renderingmodule (110), and a user interface (UI) module (115). Various componentsof the system (199) may be located on the same device (e.g., a server,mainframe, personal computer (PC), and any other device) or may belocated on separate devices connected by a network (e.g. a local areanetwork (LAN), the Internet, etc.), with wired and/or wireless segments.Those skilled in the art will appreciate that there may be more than oneof each separate component running on a device, as well as anycombination of these components within a given embodiment of theinvention.

For purposes of this disclosure, a video vignette may refer to a videoincluding one or more contiguous segments. Video vignette can refer to asingle video including separately recorded segments or can refer to aset of separate but related video segments. The segments may be capturedat separate locations and/or times, by the same or separate recordingdevices (e.g., a smartphone). In one or more embodiments of theinvention, the video vignette has a maximum length (e.g., 6 seconds)and/or is designed for looped/continuous playback.

For purposes of this disclosure, a video segment can refer to any videoor portion of video. For example, a video segment can refer to astandalone video, a segment of a video vignette, or any other portion ofvideo, in accordance with various embodiments of the invention. Thus,while some embodiments of the invention are discussed specifically withregard to video vignettes (for purposes of example), the disclosedsystems and methods can be applied more generally to any type of videosegment.

In one or more embodiments of the invention, the UI module (115)includes functionality to detect a gesture performed by a user on atouch sensitive display. Examples of a gesture may include, but are notlimited to, a press and hold gesture, a selection gesture, a buttonpress gesture, a swipe gesture, a pinch gesture, a multi-touch gesture(e.g., two finger press, press and swipe, two finger swipe, etc.), a tapgesture, a double tap gesture, a scroll gesture, and/or any other typeof gesture, in accordance with various embodiments of the invention. Forexample, the UI module (115) may detect a gesture corresponding to avideo capture command of a mobile application.

In one or more embodiments of the invention, the application module(105) includes functionality to begin recording a video segment inresponse to detecting the gesture. The recording may include a bufferamount of audio and/or video which is captured prior to detecting thegesture. In response to the gesture, the application module (105) mayinitiate a progress indicator to display an amount of remaining timeuntil the maximum length of the video vignette is reached. The recordingmay be performed in H.264, SMPTE 421M, DivX, VP8, and/or any otherformat, in accordance with various embodiments of the invention.Furthermore, in one or more embodiments of the invention, the recordingmay be rendered using an animation-enabled image format such as graphicsinterchange format (GIF).

In one or more embodiments of the invention, the application module(105) includes functionality to record one or more audio and/or videobuffers. The buffer may be a leading buffer (i.e., a buffer of recordedaudio/video which is recorded immediately before the start of a videosegment) or a trailing buffer (i.e., a buffer of recorded audio/videowhich continues recording immediately after the end of a video segment)and may correspond to a predefined length. For example, the applicationmodule (105) may enter a video capture mode in which a live stream froma camera (not shown) connected to or integrated within the clientcomputing device (100) is displayed on a display screen of the clientcomputing device (100). Upon entering the video capture mode, theapplication module (105) may begin recording a window of audio and/orvideo content to a buffer. In this example, the buffer may not bevisible to the user, but may store a fixed length and/or size ofvideo/audio to be used in rendering the final video vignette. In anotherexample, the rendering module (110) is configured to use the buffer toperform cross fading audio signals from adjacent segments of the videovignette. The rendering module (110) may also use one or more buffers toapply transition effects from the last segment to the first segment, inorder to provide a smoother transition in looped playback. In this way,audio and/or video from the buffer may be used for transition effectsand/or other rendering functionality, in accordance with variousembodiments of the invention.

In one or more embodiments of the invention, the application module(105) is configured to continue recording for as long as the usermaintains contact with a touch sensitive display of the client computingdevice (100). Thus, for example, if the user of the client computingdevice (100) performs a press and hold gesture, the application module(105) may initiate recording of a video segment upon detecting contactwith the touch sensitive display, and may continue recording into thatsegment for as long as contact is maintained, or until a predefinedlength threshold is reached.

In one or more embodiments of the invention, the UI module (115)includes functionality to detect that a user has released contact with atouch sensitive display. For example, a user of a mobile device maypress and hold within a capture screen of a mobile application. In thisexample, the capture screen shows a live stream from a camera of themobile device, and the gesture is performed by pressing and holdinganywhere in the capture screen. The UI module (115) detects when theuser has release contact with the display and notifies the applicationmodule (105) of the release event.

In one or more embodiments of the invention, the application module(105) includes functionality to stop recording the video segment. In theexample above, the application module (105) receives a notification thatthe user has released contact with a touch sensitive display, and thenceases recording in response. Other user interface elements may be usedto start and stop recording of the video segment, in accordance withvarious embodiments of the invention. For example, the UI module (115)may display a record button, or may interpret one or more gestures tostart/stop recording.

In one or more embodiments of the invention, the application module(105) includes functionality to determined that the video vignette hasreached one or more predefined length thresholds. For example, apredefined length threshold may be defined as a maximum allowed length.Upon, reaching the maximum length, the application module (105) may beconfigured to automatically finalize the video vignette (e.g., byrendering, post-processing, etc.) or may proceed to display a new userinterface requesting permission from the user to finalize the videovignette. In another example, the length threshold may be a maximumrange (i.e., a maximum range threshold). In this example, theapplication module (105) detects when the length of the video vignetteenters a maximum range (e.g., 6-6.5 seconds). In one or more embodimentsof the invention, if a user of the client computing device (100) stopsrecording within the maximum range, the application module (105)automatically finalizes the video vignette, or displays a new userinterface requesting permission from the user to finalize the videovignette. In yet another example, the length threshold is a minimumallowable length. In this example, the application module (105) isconfigured to detect that a length of the video has exceeded the minimumallowable length. If it is determined that the length has exceeded theminimum, the application module (105) may be configured to enable anoption to finalize the video. In this example, enabling the option mayinclude displaying a UI element as an option to finalize the videovignette. Thus, the application module (105) may be configured toreceive a request to finalize the video vignette before it reaches amaximum allowable length, but after it exceeds a minimum allowablelength. Continuing the example, the application module (105) may thenfinalize the video vignette. In one or more embodiments of theinvention, the length of the video vignette does not include the lengthof the recorded audio or video buffer, since the buffer will be usedonly for cross-fading and rendering purposes and will not add to thelength of the final video vignette.

In one or more embodiments of the invention, the UI module (115)includes functionality to display a representation of an audio clip to auser and/or to receive a selection of a segment of audio from the user.The audio representation can be any indication of an audio source,including but not limited to, a uniform resource locator (URL) of anonline video with associated audio, a local file stored on the clientcomputing device (100), a waveform representation of a source audioclip, and/or any other representation of audio displayed in a userinterface. The selection can correspond to an entire source audio clipor one or more sub-segments of the source audio. For example, a slidingwindow or a series of sliding windows can be overlayed onto a waveformrepresentation of the source audio. The user can then move the slidingwindow and sample the corresponding segment of audio (e.g., playedconcurrently with the corresponding video). The UI module (115) canreceive selection of a button or other UI element indicating that theaudio selection is complete. For example, after moving the slidingwindow over the waveform representation and sampling the selected audio,the user may drag the sliding window of audio into a representation of avideo to either (1) initiate concurrent playback of the selected audioand video, and/or (2) finalize audio selection and proceed to renderingthe video with the selected audio segment(s).

In one or more embodiments of the invention, the rendering module (110)includes functionality to render the video vignette. Rendering mayinclude compiling one or more recorded video segments into a final videovignette. In one or more embodiments of the invention, the renderingmodule (110) identifies an ordered list representing a desired order ofone or more video segments in the final video vignette, then renderingthe video vignette accordingly. The rendering module (110) may beconfigured to perform audio and/or video cross-fading in order tocompile the video vignette. For example, the rendering module (110) mayapply one or more user-selected video transition effects in order tocreate a transition between two adjacent segments of the video vignette.Examples of transition effects may include, but are not limited to, avideo fade effect, a video dissolve effect, a video wipe effect, a videopan effect, and/or any combination thereof.

In one or more embodiments of the invention, the rendering module (110)includes functionality to perform audio cross fading between one or moresegments of the video vignette. The rendering module may fade a firstaudio signal from a first segment with a second audio signal from asecond segment to create a combined signal for an transitional portionof audio between the two segments. The rendering module (110) may modifythe first signal (i.e., the signal from the preceding segment) over thetransitional portion according to the formulaf_(new)=f_(orig)*[1−sqrt(t)], where f_(new) is the resulting signal,f_(orig) is the original signal, and t is time less than or equal to 1.The rendering module (110) may modify the second signal (i.e., thesignal from the succeeding segment) over the transitional portionaccording to the formula f_(new)=f_(orig)*sqrt(t), where f_(new) is theresulting signal, f_(orig) is the original signal, and t is time lessthan or equal to 1. The rendering module (110) generates a combinedsignal over the transitional portion by cross-fading the two modifiedsignals. For example, the rendering module (110) computes the finalsignal F by a quadratic combination of the two signals. In this example,assuming 0 is the starting time and 1 is the finish time,F=c(t)*B+(1−c(t))*A, where c(t)=sqrt(t) for t in [0 1]. In one or moreembodiments of the invention, the preceding formulas may be normalizedto allow for increasing or decreasing the transitional portion. Anyother variation of these formulas may be used, in accordance withvarious embodiments of the invention. In one or more embodiments of theinvention, when creating a transition between adjacent segments of avideo vignette, the rendering module (110) obtains the first signal froman extra recording of the audio after the cut (i.e., the applicationmodule (105) continues recording a trailing buffer of audio after a userstops recording) and B is the audio of the new recording. In one or moreembodiments of the invention, when creating a transition between a lastsegment and a first segment of a video vignette (in order to create theloop), the rendering module (110) obtains the second signal is the audiofrom a leading buffer (i.e., recorded before the user initiatedrecording of the first segment).

In one or more embodiments of the invention, the application module(105) includes functionality to upload the video vignette to the remoteprocessing module (155). The application module (105) may initiateuploading of one or more segments of a pending video vignette, eitherconcurrently with or prior to completing the rendering process. Thus,rendering may be performed by the client computing device (100), theremote processing module (155), or a combination of both, in accordancewith various embodiments of the invention. The application module (105)may further be configured to begin uploading the video vignette inresponse to any number of triggers or events. For example, theapplication module (105) may be configured to begin uploading the videovignette in response to a user selecting an option to share the videovignette with one or more accounts of the social media platform (150).Alternatively, in another example, the application module (105) may beconfigured to begin uploading the video vignette upon detecting that theclient computing device (100) is connected to a Wi-Fi network.

In one or more embodiments of the invention, the rendering module (110)includes functionality to apply one or more video filters to the pendingvideo vignette. A video filter may be any combination of contrast,brightness, frame rate, resolution, effect(s), and/or othermanipulation(s) of the video designed for artistic and/or qualityappeal. For example, the rendering module (110) may apply a blur filterin response to a user selection. In another example, the renderingmodule (110) may apply a vintage filter designed to modify theaesthetics of one or more selected video segments.

In one or more embodiments of the invention, the rendering module (110)includes functionality to apply one or more audio filters to the pendingvideo vignette. Examples of an audio filter may include but are notlimited to, a noise reduction filter, a normalization filter, a musicaleffect filter, an entertainment effect filter, a voiceover filter,and/or any other modification of the audio. In one or more embodimentsof the invention, the UI module (115) includes functionality to displayone or more audio and/or video filters for selection on a display screenof the client computing device (e.g., by displaying one or morerepresentative UI elements). In one or more embodiments of theinvention, the UI module (115) is configured to display the filterswhile capturing a video segment, prior to rendering a video vignette,and/or during post-processing of a video vignette. The UI module (115)may receive a selection of one or more filters from the user, and theapplication module (105) may then apply the selected filters, inaccordance with various embodiments of the invention.

In one or more embodiments of the invention, the UI module (115)includes functionality to display a live stream from a camera of theclient computing device (100). The UI module (115) may be configured todisplay the live stream while in a capture mode of a softwareapplication executing on the client computing device (100). Capture modemay refer to any state in which the user is able to capture video usingone or more inputs to the UI module (115). In one or more embodiments ofthe invention, the live stream is displayed concurrently with arepresentation of one or more recorded video segments of the videovignette.

In one or more embodiments of the invention, the rendering module (110)includes functionality to detect one or more audio and/or video triggerswhile displaying the live stream. An audio trigger may be any type ofpredefined audio input associated with a command. Examples of an audiotrigger may include, but are not limited to, exceeding a predefineddelta between one or more previously recorded audio signals (e.g., ofrecorded video segments) and a live streaming audio signal (e.g., of acurrent video segment), exceeding a baseline audio signal or frequency,a current audio frequency being below a threshold frequency, a currentaudio noise level exceeding a predefined threshold noise level, and/orany other criteria for recommending or applying one or more audiofilters.

In one or more embodiments of the invention, the rendering module (110)includes functionality to display an option to apply one or more filtersto the pending video vignette in response to an audio or video trigger.The rendering module (110) may be configured to display a tooltip orother UI element recommending one or more filters and/or indicating thatone or more filters have hen applied. In one or more embodiments of theinvention, the UI module (115) is configured to display the UI elementconcurrently with a live video stream. The UI module (115) may furtherbe configured to display the UI element either prior to, during, and/orafter recording one or more video segments.

In one or more embodiments of the invention, the UI module (115)includes functionality to display a progress indicator associated with alength of the pending video vignette. The progress indicator may be aprogress bar, a progress circle, a percentage complete indicator, and/orany other graphical, numerical, or descriptive indication of the currentlength of a pending video vignette relative to a maximum length of thevideo vignette. In one or more embodiments of the invention, the currentlength of the pending video vignette does not include one or morebuffers (e.g., leading/trailing buffers). Furthermore, in one or moreembodiments of the invention, the maximum length of the video vignettemay refer to a beginning time of a maximum range threshold. Thus, inembodiments involving the use of a maximum range threshold, the UImodule (115) may be configured to display the progress indicatorrelative to the beginning of the maximum range. In this way, the usermay actually continue recording for a short duration (i.e., the durationof the maximum range) after completion of the progress bar. For example,if the maximum duration is 10-11 seconds, the UI module (115) may beconfigured to display the progress indicator relative to the 10 secondtime. In this way, the application module (105) may be configured tocontinue recording for 1 second after completion of the progress bar.Thus, in this example, if the user stops recording prior to 10 seconds,the current segment is saved and the UI module (115) provides the userwith an option to continue recording for the currently pending videovignette (e.g., to record additional segment(s)). Also in this example,if the user stops recording between 10 and 11 seconds, the applicationmodule (105) automatically finalizes the video vignette or provides theuser with an option to finalize the video vignette (i.e., no furtherrecording is allowed for this pending video vignette). Continuing theexample, if the user continues recording until 11 seconds, the recordingceases automatically at 11 seconds. In one or more embodiments of theinvention, the additional but non-visible recording time of the maximumrange threshold may prevent the final video segment from beingprematurely truncated or from appearing rushed.

In one or more embodiments of the invention, the UI module (115)includes functionality to display a representation of a set ofpreviously recorded video segments of a pending video vignette. Therepresentation may be any UI element or combination of UI elementsrepresenting the one or more segments. Examples of the representationmay include, but are not limited to, a sequence of thumbnails of therecorded segments displayed at fixed time intervals, an image montageincluding one or more thumbnails from the segments, a counterrepresenting a number of recorded segments, a set of icons/graphicsrepresenting the recorded segments, and/or any other graphical depictionof one or more aspects of the recorded segments.

In one or more embodiments of the invention, the UI module (115)includes functionality to detect a user input corresponding to therepresentation. For example, the user may select a UI element of therepresentation or may perform a gesture associated with the recordedsegments (e.g., a swipe in the direction of the representation, etc.).In another example, a user may select a thumbnail of one of the recordedsegments.

In one or more embodiments of the invention, the UI module (115)includes functionality to display an ordered list of UI elementsrepresenting the recorded video segments. The ordered list may includethumbnails, stock images, icons, numbers, and/or any other placeholderrepresenting each recorded segment. In this way, the UI module (115) maybe configured to illustrate the number of currently recorded segments, adepiction of the content of each segment, a length of each segment,and/or any other attribute of one or more segments via the ordered list,in accordance with various embodiments of the invention.

In one or more embodiments of the invention, the UI module (115)includes functionality to detect an input associated with the orderedlist. Examples of the input may include, but are not limited to,releasing contact with a touch sensitive display in order to ceaserecording of a new segment, a drag input for moving a recorded segmentto a new location in the ordered list, a drag input (e.g., to a trashindication) for deleting one or more recorded segments, a selection ofone or more of the recorded segments in the ordered list for detail view(e.g., to apply one or more filters), and/or any other selection ormodification associated with the ordered list.

In one or more embodiments of the invention, the UI module (115)includes functionality to perform a modification to the ordered list inresponse to the input. Examples of the modification may include, but arenot limited to, re-ordering the list, moving a segment to a differentlocation in the list, adding a newly recorded segment to the list (e.g.,in response to releasing contact with a touch sensitive display),deleting one or more segments from the list, combining one or moresegments in the list (e.g., by tiling the segments into a singlesegment), and/or any other modification to the ordered list.

In one or more embodiments of the invention, the UI module (115)includes functionality to open a detail view corresponding to one ormore of the recorded segments. The UI module (115) may be configured toreceive a selection of one or more attributes of the recorded segment inthe detail view. In one or more embodiments of the invention, in thedetail view, the UI module (115) receives a selection of one or moredefault thumbnail images for a segment. This default thumbnail may beused to represent the segment in a representation of the recordedsegment(s) while in capture mode and/or may be used by the UI module(115) to represent the segment in a scroll area including the finalizedvideo vignette, in accordance with various embodiments of the invention.In one or more embodiments of the invention, the application module(105) renders the finalized video vignette in the order depicted by theordered list.

In one or more embodiments of the invention, the application module(105) includes functionality to create an icon corresponding to a mobileapplication residing on the client computing device (100). The icon maybe a shortcut to launching the mobile application on the clientcomputing device (100). In one or more embodiments of the invention, anytype of shortcut for launching the application may be used, depending onthe operating system of the client computing device (100). For example,in Apple's iOS operating system, the icon may be implemented as a webclip added to a home screen of an iPhone or iPad. Apple®, iPhone®, andiPad® are registered trademarks of the Apple Corporation (Cupertino,Calif.). IOS® is a registered trademark of the Cisco Corporation (SanJose, Calif.).

In one or more embodiments of the invention, the UI module (115)includes functionality to detect a selection of the icon. The icon maybe selected by any number of user inputs, in accordance with variousembodiments of the invention.

In one or more embodiments of the invention, the application module(105) includes functionality to launch the mobile application directlyinto video capture mode in response to detecting the selection. Themobile application may be launched according to one or more parametersassociated with the icon. Thus, in the example of a web clip in the iOSoperating system, a tag referencing a mobile application may be used.Other parameters may also be included in the web clip. In this example,a tag may specify that the mobile application should be launched intovideo capture mode, such that a single click enables shooting of a videovignette. In one or more embodiments of the invention, the applicationmodule (105) is configured to begin recording of a video segmentautomatically (i.e., without additional user input) upon launching theapplication. Conversely, in one or more embodiments, the applicationmodule (105) may require additional user input to begin recording.

In one or more embodiments of the invention, the UI module (115)includes functionality to display a stream of content on a displayscreen of the client computing device (100), wherein the contentincludes one or more video vignettes. The stream of content may be achronologically (or otherwise organized) including one or more messages,advertisements, images, videos, audio, uniform resource locators (URLs),offers, web views, surveys, information regarding relevant or associatedaccounts of the social media platform (150), reviews, endorsements,and/or any other content obtained from the social media platform (150).In one or more embodiments of the invention, the content is pushed tothe client computing device (100) in real time by the social mediaplatform (150). In other words, due to the real time nature of thecontent and interactions in the stream, two users may be logged intodifferent accounts of the social media platform (150) using separatedevices, and may be able to interact and conduct a conversation in realtime by sending and receiving content (e.g., video vignettes, messages,photos, etc.) during their simultaneous sessions. In one or moreembodiments of the invention, the UI module (115) is configured todisplay the stream of content in a scroll area of a display, and/or maybe configured to update the content in response to user input (e.g.,pull down to refresh) or some implementation of infinite scrolling.

In one or more embodiments of the invention, the application module(105) includes functionality to identify a set of images, each imagerepresenting at least a portion of the video vignette. The UI module(105) may be configured to receive a selection of the images from a userof the client computing device (100) or may assign the imagesautomatically. In one or more embodiments of the invention, each imageis a thumbnail image taken from the corresponding portion or location ofthe video it represents. For example, a first frame, middle frame, lastframe, and/or other frame of each of the portions may be used as athumbnail for that portion. Facial recognition, lighting detection,quality detection, random assignment, and/or any other predefinedlocation of the portion may be used to select the image, in accordancewith various embodiments of the invention. In one or more embodiments ofthe invention, the portion(s) of the video are contiguous video segmentsof the video vignette which are recorded at different times and/orlocations. Conversely, in one or more embodiments, the portions areuniformly sized portions of the video vignette. For example, a 6 secondvideo vignette may include 6 one second portions.

In one or more embodiments of the invention, the application module(105) includes functionality to identify a set of images, each imagerepresenting a location of the video vignette. Thus, for example, athumbnail image may be taken at one or more locations or time intervalsof the video vignette.

In one or more embodiments of the invention, the application module(105) includes functionality to associate each image with at least onelocation in an area of the display screen. The area of the displayscreen may refer to a scroll area or other graphical element displayedto a user of the client computing device. The location may be apercentage of the vertical and/or horizontal length of the area, or maybe a number of vertical and/or horizontal pixels offset within the area.For example, given a 6 second video vignette, the application module mayobtain 6 thumbnail images taken from the video in 1 second intervals(beginning at a first frame).

In one or more embodiments of the invention, the application module(105) includes functionality to detect a scroll input associated withthe stream. Examples of a scroll input may include, but are not limitedto, a multi-touch gesture performed on a touch sensitive display ortouchpad, an input from a scroll wheel of a mouse, selection of an arrowor bar in a scrollbar, a selection of an up/down arrow on a keyboard(while the stream is in focus), and/or any other method of scrolling awindow, view, page, list, or other UI element.

In one or more embodiments of the invention, the application module(105) includes functionality to scroll, in response to detecting thescroll input, a representation of the video vignette through the area ofthe display screen. The representation of the video vignette may bemodified to display each image at its associated location. In one ormore embodiments of the invention, if the images correspond to portionsof the video vignette, the application module (105) maps each portion toa section of the scrollable area. As the representation of the videovignette is scrolled through the area, the representation is modified toinclude a thumbnail from each portion in its corresponding location onthe screen. For example, given a six second video vignette with sixequal sixed 1 second video segments, the scrollable area is divided intosix equal pieces. Beginning at a bottom of the scrollable area, thevideo is represented by a thumbnail from the first portion as it scrollsthrough the first ⅙^(th) of the scrollable area, the image changes to athumbnail from the second portion as the representation scrolls throughthe second ⅙^(th) of the scrollable area (and so on). Regardless of thescrolling direction, any time the representation enters a differentpredefined section of the scrollable area, the representation ismodified to include the image corresponding to that section.

In one or more embodiments of the invention, the UI module (115)includes functionality to receive a selection of a video vignette withina stream of content displayed on a display screen. The selection mayinvolve a user performing a gesture or other input (e.g., a mouse click)on a representation of the video vignette, or on a UI element associatedwith the video vignette (e.g., a “play” button).

In one or more embodiments of the invention, the application module(105) includes functionality to initiate playback of the video vignettein response to the selection. The application module (105) may beconfigured to perform the playback within a representation of the videovignette (e.g., without leaving a scroll area displaying the stream) orelsewhere within a scroll area displaying the stream.

More generally, in one or more embodiments of the invention, the UImodule (115) includes functionality to initiate playback and/or stopvideo playback of a video (e.g., a video vignette) based on one or morepredefined user inputs. For example, a user may perform a swipe gesture(e.g., a left/right/up/down gesture) over the representation of thevideo. In response to detecting the swipe gesture, the applicationmodule (105) can be configured to initiate playback of the video. In oneor more embodiments, if the video is already playing, the applicationmodule (105) can restart playback at a start of the video. In anotherexample, a leftward swipe can initiate/restart playback of the videowhile a rightward swipe stops playback of the video.

In one or more embodiments of the invention, the UI module (115)includes functionality to allow a user to step through one or moreframes/thumbnails of a video in response to detecting a tap and holdgesture on a representation of the video. Thus, a user may tap and holdthe representation and then drag in the direction of a playbackindicator in order to step forward or backward through frames orthumbnails of the video. For example, one or more predefined images eachrepresenting a portion of the video can be displayed as the user stepsforward or backward through a segment of the video. In one or moreembodiments, the UI module (115) is configured to detect the tap andhold gesture and to enter an “incremental mode” in response to detectingthe gesture. Thus, upon releasing the gesture the user can perform adrag gesture to step through one or more frames of the video and/or canperform a multi-touch or other gesture (e.g., a pinch gesture) to zoomin or out of a currently displayed frame. In one or more embodiments,the UI module (115) is configured to exit the “incremental mode” and toreturn to regular playback mode upon detecting a predefined gesture(e.g., a tap gesture) on the representation of the video. In one or moreembodiments of the invention, the audio/video playback, editing, and/orrelated functionality described herein can be performed within a streamdisplaying a representation of a video, within a standalone UI includinga representation of a video, and/or within any other user interfacecapable of displaying the representation.

In one or more embodiments of the invention, the UI module (115)includes functionality to detect a scroll input associated with thestream while playing the video vignette. Thus, in one or moreembodiments of the invention, the UI module (115) is configured toenable continued interaction with the stream during playback of thevideo vignette.

In one or more embodiments of the invention, the application module(105) includes functionality to modify a volume of the playback whilethe video vignette is scrolled through an area of the display screen.The application module (105) may be configured to modify the audioplayback based on a location of the video vignette in a scrollable areaof the display. For example, the application module (105) may beconfigured to reduce the volume as the video vignette scrolls out of theviewable area. In this example, the application module (105) maintainsthe volume level as a linear function of the amount of the videovignette which is visible in the scrollable area. Thus, in this example,as the video vignette scrolls off of the screen, the volume is reducedproportional to its visible presence on the display. In other words, ifthe video vignette is only 50% viewable on the display screen, thevolume level is adjusted to 50%. Any other function for correlating thevolume level with the visible amount/percentage of the video vignettemay be used, in accordance with various embodiments of the invention. Inone or more embodiments of the invention, the application module (105)uses the following formula to adjust the volume:V_(new)=V_(orig)*(1−P{circumflex over ( )}N), where V_(new) is the newvolume, V_(orig) is the original volume (i.e., prior to scrolling off ofthe display), P is a fraction of the video vignette which is no longervisible on the display, and N is an exponent value greater than 1. Anyvariation of this formula, or any other formula with a positivecorrelation between visibility of the video vignette and volume levelmay be used, in accordance with various embodiments of the invention.

In one or more embodiments of the invention, the application module(105) includes functionality to identify an account of a user in asocial media platform. The user's account may be identified by accessingan external service (e.g., remote processing module (155)) of the socialmedia platform (150) with one or credentials supplied by the user. Theuser account can be referred to as a context account and may correspondto an account of the user of the client computing device (100) or athird party account associated with the request.

In one or more embodiments of the invention, the application module(105) includes functionality to identify one or more connected accountshaving a graph relationship with the account. The accounts may beidentified by searching a connection graph in the connection graphrepository (160) for other accounts which are connected, directly and/orindirectly, to the account. In one or more embodiments of the invention,accounts may be connected via uni-directional and/or bi-directionalrelationships in the graph. In one example, the graph relationship is afollower/followee relationship in which the account of the user followsone or more connected accounts. In this example, the “followed” accountsmay not be followers of the “follower” account, and may not be notifiedthat the follower account has decided to follow them. Alternatively, inanother example, the account of the user is connected to the connectedaccounts by a friend relationship in which each party of the friendshiphas agreed to connect on the social media platform. In one or moreembodiments of the invention, the connected accounts have a predefinedgraph relationship with the user's account. For example, the applicationmodule (105) can be configured to select connected accounts within apredefined degree of separation from the context account. Any othercriteria can be used to score and/or select connected accounts, inaccordance with various embodiments of the invention.

In one or more embodiments of the invention, the application module(105) includes functionality to display, on a display screen of theclient computing device (100), a stream of content including a set ofvideos of the connected accounts. The stream of content displayed in thescroll area may include content specifically associated with the user'saccount.

In one or more embodiments of the invention, the UI module (115)includes functionality to receive, from the user, a selection of a UIelement associated with at least one of the videos (e.g., a videovignette) displayed in the stream. For example, the UI module (115) mayreceive a selection of a “respond” button, link, or any icon orgraphical element configured to enable linking or associating one ormore other videos with the video(s) associated with the UI element.

In one or more embodiments of the invention, the application module(105) includes functionality to identify one or more selected videos,and to attach the selected videos to the video(s) associated with the UIelement. For example, the UI module (115) may provide a UI for selectingvideos from the user's own account in order to attach or otherwiserespond to the video(s) associated with the UI element. The applicationmodule (105) may be configured to combine the selected videos and thevideo(s) associated with the UI element into one video vignette. Forexample, one or more segments of the videos may be selected forinclusion in the combined video based on a random selection, a locationbetween the shooting of the segments, a length of time between theshooting of the segments, and/or any other criteria for compilingmultiple video segments from multiple videos into a single video. In oneor more embodiments of the invention, the UI module (115) is configuredto receive the selection of individual segments from the user's video(s)for inclusion in the combined video or in reply to the video(s)associated with the UI element.

In one or more embodiments of the invention, the rendering module (110)includes functionality to generate a single looping video vignetteincluding at least a portion of the selected video and the video(s)associated with the UI element.

In one or more embodiments of the invention, the rendering module (110)includes functionality to display combined looping video vignette withinone or more streams of various accounts having a graph relationship withaccounts that contributed to the combined video vignette (e.g.,followers of those accounts).

In one or more embodiments of the invention, the remote processingmodule (155) includes functionality to receive a first video taken at afirst location from a first mobile device. The remote processing module(155) may be configured to identify geo-tagging or other locationinformation of the first video. For example, the remote processingmodule (155) may be configured to identify global positioning system(GPS) coordinates identifying the first location as the place where thefirst video was recorded.

In one or more embodiments of the invention, the remote processingmodule (155) includes functionality to identify one or more promotedvideo vignettes that are related to a context account (e.g., an accountof a user associated with a request for promoted content). Promotedvideo vignettes can include videos selected for advertising to otherusers, videos preselected by an administrator (e.g., a “top picks”video), and/or any other video, in accordance with various embodiments.For example, the remote processing module (155) can be configured toidentify promoted video vignettes based on a graph relationship betweenthe context account and an advertising account of an advertiserpromoting the video. In another example, the remote processing module(155) is configured to identify promoted video vignettes by matching oneor more attributes of the context account with attributes of theparticular promoted video and/or attributes (e.g., keywords) preselectedby an advertiser of the promoted video. In one or more embodiments ofthe invention, the remote processing module (155) includes functionalityto track engagement with one or more promoted video vignettes and toprovide engagement data for use in calculating advertising costsassociated with the promoted video.

In one or more embodiments of the invention, the remote processingmodule (155) includes functionality to insert one or more promotedvideos within a stream of a context account based on a predefinedformula for matching promoted content to an account and/or locationswithin a stream of an account.

In one or more embodiments of the invention, the remote processingmodule (155) includes functionality to select a “popular” stream ofvideo vignettes based on user engagement with the video vignettes. Forexample, the remote processing module (155) can be configured toidentify one or more videos with a high number of “favorites” (e.g., orother engagement metric(s)) and to display the videos in a streamassociated with a context account. In one or more embodiments, videoscan be selected for inclusion in the popular stream based on one or moregraph relationships between the context account and the high-engagementvideos. The UI module (115) can be configured to display arepresentation of a video vignette within a stream in conjunction with(1) a name of the authoring account of the video vignette, (2) anindication of whether the context account and the authoring account ofthe video share a graph relationship (e.g., “follow”/“following”), (3)biographical data of the authoring account, and/or (4) a locationassociated with the authoring account.

In one or more embodiments of the invention, the remote processingmodule (155) includes functionality to select popular authoring accountsfor inclusion in a popular stream of an account. For example, the remoteprocessing module (155) can be configured to identify one or moreaccounts with a high number of graph connections (e.g., exceeding apredefined number of graph connections) and/or high average engagement(e.g., exceeding a predefined engagement amount) of one or more postedvideos and to display an indication of the accounts in a stream of acontext account. In one or more embodiments, videos can be selected forinclusion in the popular accounts stream based on one or more graphrelationships between the context account and the popular accounts. TheUI module (115) can be configured to display a representation of anaccount within a stream in conjunction with (1) a name of the account,(2) an indication of whether the context account and the account share agraph relationship (e.g., “follow”/“following”), (3) biographical dataof the account, and/or (4) location of the account.

In one or more embodiments of the invention, the remote processingmodule (155) includes functionality to receive a second video taken at asecond location from a second mobile device. The remote processingmodule (155) may be configured to identify geo-tagging or other locationinformation of the second video. For example, the remote processingmodule (155) may be configured to identify global positioning system(GPS) coordinates identifying the second location as the place where thesecond video was recorded. The remote processing module (155) may beconfigured to infer/estimate the first location and/or the secondlocation based on general location information obtained from thecorresponding mobile device(s) (e.g., GPS coordinates logged at a timein which the video(s) were recorded, etc.).

In one or more embodiments of the invention, the remote processingmodule (155) includes functionality to detect whether the first locationis within a predefined proximity of the second location. The remoteprocessing module (155) may be configured to calculate a distancebetween the first location and the second location and to compare thedistance with the predefined proximity value (e.g., 20 meters). Based onthe comparison, the remote processing module (155) may then determinewhether the first video was recorded within the predefined proximity ofthe second video.

In one or more embodiments of the invention, the remote processingmodule (155) includes functionality to determine whether the first videowas filmed within a predefined time window of the second video. Theremote processing module (155) may be configured to compare timestamps,logs, metadata, and/or other information to identify a recording time ofthe videos. The remote processing module (155) may then compare therecorded times and calculate a delta (i.e., a difference) between them.The remote processing module (155) may then compare the delta to apredefined time threshold. If the delta is within the predefined timethreshold, the remote processing module (155) may tag the first videoand the second video as being recorded within the same relative time.

In one or more embodiments of the invention, the remote processingmodule (155) includes functionality to construct a combined videovignette including the first video and the second video. The remoteprocessing module (155) may construct the combined video vignette basedon determining that the first video and the second video were recordedwithin the same relative time window and/or based on determining thatthe first video was recorded within a predefined proximity of the secondvideo.

In one or more embodiments of the invention, the remote processingmodule (155) includes functionality to send the combined video vignetteto one or more client computing devices of users of the social mediaplatform (150). The remote processing module (155) may be configured totag the combined video vignette for inclusion in content streams ofaccounts having a predefined graph relationship (e.g., subscription to,friendship with, following, etc.) with the first account, the secondaccount, and/or both accounts.

In one or more embodiments of the invention, the application module(105) is a component of a software application or a set of relatedsoftware applications configured to execute on one or more hardwareprocessors of the client computing device (100). The application module(105) may include one or more reader and/or writer threads configured toperform multiple concurrent iterations of one or more of the disclosedmethods. In one or more embodiments of the invention, some or all of theapplication module (105) is integrated within or operatively connectedto an operating system of the client computing device (100).

In one or more embodiments of the invention, the rendering module (110)is a component of a software application or a set of related softwareapplications configured to execute on one or more hardware processors ofthe client computing device (100). The rendering module (110) mayinclude one or more reader and/or writer threads configured to performmultiple concurrent iterations of one or more of the disclosed methods.In one or more embodiments of the invention, some or all of therendering module (110) is integrated within or operatively connected toan operating system of the client computing device (100). In one or moreembodiments of the invention, some or all of the rendering/finalizationfunctionality discussed herein (e.g., rendering a video vignette,applying filters to a video vignette, etc.) may be performed by a remoteserver application (e.g., remote processing module (155)) instead of therendering module (110).

In one or more embodiments of the invention, the UI module (115) is acomponent of a software application or a set of related softwareapplications configured to execute on one or more hardware processors ofthe client computing device (100). The UI module (115) may include oneor more reader and/or writer threads configured to perform multipleconcurrent iterations of one or more of the disclosed methods. In one ormore embodiments of the invention, some or all of the UI module (115) ispartially or entirely integrated within or operatively connected to anoperating system of the client computing device (100).

In one or more embodiments of the invention, the client computing device(100) is a hardware computing device including one or more processorscapable of executing software. Examples of a computing device mayinclude, but are not limited to, a smartphone, a tablet computer, anetbook, a laptop computer, a desktop computer, an automotive computersystem, a gaming console, and/or any other standalone or embedded systemincluding a user interface. The application module (105), renderingmodule (110), and/or UI module (115) may be part of a softwareapplication executing on the computing device, or may be partially orentirely integrated within an operating system of the computing device,in accordance with various embodiments of the invention. FIGS. 14 and 15(described below) depict examples of such a device.

In one or more embodiments of the invention, the social media platform(150) is a platform for facilitating the exchange of real-time data(e.g., text, audio, video, images, etc.) between one or more entities.For example, the social media platform (150) may store millions ofaccounts of individuals, businesses, and/or other entities (e.g.,pseudonym accounts, novelty accounts, etc.). One or more users of eachaccount may use the social media platform (150) to send content to otheraccounts inside and/or outside of the social media platform (150). Thesocial media platform (150) may be configured to enable users tocommunicate in “real-time”, i.e., to converse with other users with aminimal delay and to conduct a conversation with one or more other usersduring simultaneous sessions. In other words, the social media platform(150) may allow a user to broadcast content and may display the contentto one or more other users within a reasonable time frame so as tofacilitate a live conversation between the users. Recipients of amessage may have a predefined graph relationship with an account of theuser broadcasting the message. In one or more embodiments of theinvention, the user is not an account holder or is not logged in to anaccount of the social media platform (150). In this case, the socialmedia platform (150) may be configured to allow the user to broadcastmessages and/or to utilize other functionality of the social mediaplatform (150) by associating the user with a temporary account oridentifier.

In one or more embodiments of the invention, the remote processingmodule (155) is a component of a software application or a set ofrelated software applications configured to execute on one or morehardware processors of one or more server computing devices. The remoteprocessing module (155) may include one or more reader and/or writerthreads configured to communicate with multiple clients (e.g., clientcomputing device (100)) and to perform multiple concurrent iterations ofone or more of the disclosed methods. In one or more embodiments of theinvention, the remote processing module (155) is implemented as acomponent of a distributed system with multiple nodes connected by anetwork. Accordingly, the functionality of the remote processing module(155) may be distributed across multiple networked physical devices.

In one or more embodiments of the invention, the connection graphrepository (160) stores a connection graph including a number of nodesconnected by edges. The connection graph may be implemented as a datastructure (e.g., a tree structure) representing each account of thesocial media platform (150) as a node, and representing relationshipsbetween the accounts (e.g., friendship, follower/followee, fans, etc.)as edges.

In one or more embodiments of the invention, the video repository (165)stores user generated content and related data of the social mediaplatform (150) (e.g., video vignettes, content metadata, geolocationdata, reply structures, images, messages, streams, and/or, etc.).

In one or more embodiments of the invention, one or more of the datarepositories (connection graph repository (160) and video repository(165)) is a database and/or storage service residing on one or moreservers. For example, one or more of the data repositories may beimplemented as a storage service using service-oriented architecture(SOA) and configured to receive requests for data and to providerequested data to other components of the social media platform (150).In another example, the data repositories may include one or more tablesin a distributed database management system (DBMS), a clustereddatabase, a standalone flat file, an unstructured database, and/or anystorage software residing on one or more physical storage devices.Examples of a storage device may include, but are not limited to, a harddisk drive, a solid state drive, and/or other memory device. Any type ofdatabase or storage application can be used, m accordance with variousembodiments of the invention.

In one or more embodiments of the invention, one or more of the datarepositories (connection graph repository (160) and video repository(165)) is a separate application or series of applications residing onone or more servers external (and communicatively coupled) to the socialmedia platform (150). Alternatively, in one or more embodiments of theinvention, one or more of the data repositories may be an integratedcomponent of the social media platform (150) and/or may reside, eitherpartially or entirely, on one or more common hardware devices (e.g., aserver).

FIG. 2 shows a flowchart of a method for recording a video. While thevarious steps in this flowchart are presented and describedsequentially, one of ordinary skill will appreciate that some or all ofthe steps may be executed in different orders and some or all of thesteps may be executed in parallel. Further, in one or more embodimentsof the invention, one or more of the steps described below may beomitted, repeated, and/or performed in a different order. Accordingly,the specific arrangement of steps shown in FIG. 2 should not beconstrued as limiting the scope of the invention.

In STEP 200, a gesture is performed by a user on a touch sensitivedisplay. The gesture may be detected by a UI module (e.g., UI module(115) of FIG. 1, discussed above) of a computing device. In STEP 205, arecording of a video segment is initiated in response to detecting thegesture. In one or more embodiments of the invention, the recordingcontinues while the user maintains contact with the touch sensitivedisplay.

In STEP 210, it is detected that the user has released contact with thetouch sensitive display. In STEP 215, recording of the video segment isceased in response to detecting that the user has released contact. Inone or more embodiments of the invention, the video segment isautomatically, rendered, finalized, and/or uploaded to a remote serverin response to detecting that the user has released contact. Conversely,in one or more embodiments, the video segment is a component of a videovignette including multiple segments.

FIG. 3 shows a flowchart of a method for recording a video vignette.While the various steps in this flowchart are presented and describedsequentially, one of ordinary skill will appreciate that some or all ofthe steps may be executed in different orders and some or all of thesteps may be executed in parallel. Further, in one or more embodimentsof the invention, one or more of the steps described below may beomitted, repeated, and/or performed in a different order. Accordingly,the specific arrangement of steps shown in FIG. 3 should not beconstrued as limiting the scope of the invention.

In STEP 300, a gesture performed by a user on a touch sensitive displayis detected. Any gesture or input may be used, in accordance withvarious embodiments of the invention. In STEP 305, a video segment isrecorded in response to the gesture.

In STEP 310, it is determined whether the pending video vignette hasreached a predefined length threshold. If it is determined that thelength threshold is reached, the process proceeds to STEP 315. If it isdetermined that a current length of the pending video vignette is lessthan the length threshold, the process proceeds to STEP 300. In one ormore embodiments of the invention, a user may choose to complete thevideo vignette prior to reaching the length threshold.

In STEP 315, the recorded video segments are compiled into a videovignette. Compiling, rendering, finalizing, and/or uploading of therecorded video segments may occur concurrently with the recording of oneor more of the video segments, in between the recording of individualsegments, and/or at any point prior to reaching STEP 315. A mobiledevice may enable saving of a pending video vignette such that recordedsegments are saved on the mobile device and retrieved at a later time(e.g., during a subsequent session with the mobile application) forfurther recording, editing, and/or finalization of the video vignette.

FIG. 4 shows a flowchart of a method for displaying a user interfaceassociated with a video vignette. While the various steps in thisflowchart are presented and described sequentially, one of ordinaryskill will appreciate that some or all of the steps may be executed indifferent orders and some or all of the steps may be executed inparallel. Further, in one or more embodiments of the invention, one ormore of the steps described below may be omitted, repeated, and/orperformed in a different order. Accordingly, the specific arrangement ofsteps shown in FIG. 4 should not be construed as limiting the scope ofthe invention.

In STEP 400, a live stream from a camera of a mobile device isdisplayed. For example, the live stream may be displayed while in avideo capture mode of a mobile application. In STEP 405, arepresentation of a set of previously recorded video segments isdisplayed concurrently with the live stream. The representation may beany graphical element representing one or more video segments (e.g.,thumbnail(s), icon(s), tab(s), etc.).

In STEP 410, a first user input corresponding to the representation 1sdetected. Examples of the user input may include, but are not limitedto, a selection of a hyperlink, a click or gesture on therepresentation, a double tap on the representation, and/or any otherinput indicating a desire to select, expand, and/or provide additionaldetail on the video segment(s).

In STEP 415, an ordered list of UI elements representing the videosegments is displayed. The list may be displayed graphically as a seriesof tabs, icons, thumbnails, pages, panels, numbers, and/or any otherordered set of elements, in accordance with various embodiments of theinvention.

In STEP 420, a second user input associated with the ordered list isdetected. The second input may be directed towards a specific subset ofthe ordered list (e.g., a single video segment). For example, a user mayselect an icon representing one of the video segments in order to applyone or more filters to the segments. In another example, the user maydrag one or more of the video segments in order to re-order (e.g., to anew location) or remove them from the ordered list (e.g., by dragging toa trash icon).

In STEP 425, a modification to the ordered list is performed in responseto the second user input. The modification may involve displaying a newthumbnail selected by a user to represent a modified segment, displayingthe modified list to show a modified order of segments, removing one ormore segments from the list, and/or performing any other edit(s)requested by the user. In one or more embodiments of the invention, thevideo segments appear in the posted video vignette in the order depictedby the final list.

FIG. 5 shows a flowchart of a method for launching a mobile application.While the various steps in this flowchart are presented and describedsequentially, one of ordinary skill will appreciate that some or all ofthe steps may be executed in different orders and some or all of thesteps may be executed in parallel. Further, in one or more embodimentsof the invention, one or more of the steps described below may beomitted, repeated, and/or performed in a different order. Accordingly,the specific arrangement of steps shown in FIG. 5 should not beconstrued as limiting the scope of the invention. Furthermore, it shouldbe noted that the user of a mobile application is only for exemplarypurposes, and that the steps of the described method may be used withany application, including non-mobile applications, in accordance withvarious embodiments of the invention.

In STEP 500, an icon corresponding to a mobile application residing on amobile device is created. The icon may be any graphical element which,when selected, causes the mobile application to be launched. The iconmay be associated with one or more parameters for launching and/orexecution of the mobile application. For example, a parameter mayrequest a particular page or mode of the application to be displayedupon launching.

In STEP 505, a selection of the icon is detected. Any user input may beuser, in accordance with various embodiments of the invention. In STEP510, the mobile application is launched directly into video capture modein response to detecting the selection of the icon. Video capture modemay be any mode in which a live video stream is presented to the user, arecord option is displayed to the user, and/or recording of a video isinitiated.

FIG. 6 shows a flowchart of a method for scrolling a video through ascroll area. While the various steps in this flowchart are presented anddescribed sequentially, one of ordinary skill will appreciate that someor all of the steps may be executed in different orders and some or allof the steps may be executed in parallel. Further, in one or moreembodiments of the invention, one or more of the steps described belowmay be omitted, repeated, and/or performed in a different order.Accordingly, the specific arrangement of steps shown in FIG. 6 shouldnot be construed as limiting the scope of the invention.

In STEP 600, a set of images is identified, each image representing atleast a portion of a video vignette. The images may correspond toindividual video segments of a video vignette, and/or may correspond toseparate predefined sections of a video.

In STEP 605, each image is associated with at least one scroll locationin a scroll area of a display screen. The scroll area may display astream of content including representations of one or more videovignettes. A subset of the scroll area may first be identified. Forexample, given a representation of a video vignette which is 50 pixelsin height and a scrollable area which is 800 pixels in height, the topand bottom 50 pixels may be excluded and the middle 700 pixels may beconsidered. In this example, the middle 700 pixels are then divided intoN equal-sized sections, where N is the number of images. Given that 7images are present, the 700 pixel height of the scroll area is thendivided into 100 pixel segments.

In STEP 610, a representation of the video vignette is displayed in thescroll area. The representation may include a first of the set of images(e.g., a thumbnail image) as it enters a viewable area of the displayscreen at an initial location. Given that the images represent thesequence of a video vignette, the first image may represent a firstportion of the video.

In STEP 615, a scroll input associated with the scroll area is detected.Any type of scroll input may be used, in accordance with variousembodiments of the invention. In STEP 620, the representation of thevideo vignette is moved through the scroll area in response to detectingthe scroll input, wherein the representation is modified to display eachof the set of images at its associated location while scrolling. Thus,for example, the representation may be modified to a different thumbnailimage as it is scrolled upwards in the scroll area. A reverse in thescroll direction may change the representation to a previously displayedthumbnail (e.g., if the representation enters a lower section associatedwith the previously displayed thumbnail). In this way, in one or moreembodiments of the invention, the position of the representation in thescroll area dictates the appearance of the representation.

FIG. 7 shows a flowchart of a method for scrolling a video through ascroll area. While the various steps in this flowchart are presented anddescribed sequentially, one of ordinary skill will appreciate that someor all of the steps may be executed in different orders and some or allof the steps may be executed in parallel. Further, in one or moreembodiments of the invention, one or more of the steps described belowmay be omitted, repeated, and/or performed in a different order.Accordingly, the specific arrangement of steps shown in FIG. 7 shouldnot be construed as limiting the scope of the invention.

In STEP 700, playback of a video (e.g., a video vignette) is initiatedwithin a scroll area of a display screen, wherein the video beginsplaying at an initial audio level while entirely visible within thescroll area. The playback may be initiated in response to a user'sselection of a representation of the video (e.g., a thumbnail image).

In STEP 705, a scroll input associated with the scroll area is detectedwhile playing the video. In STEP 710, the video is scrolled through thescroll area in response to detecting the scroll input, wherein the audiolevel of the video is decreased gradually as the video scrolls out ofthe scroll area while playing. In other words, the audio level may beadjusted depending on a location of the video in the scroll area.Furthermore, the audio level may be decreased from an initial level asvisibility of the video is decreased due to the scrolling. Anyrelationship between the percentage or amount of visibility of the videoand the audio level may be used, in accordance with various embodimentsof the invention. If playback of the video is initiated while arepresentation of the video is partially not visible in the scroll area,the initial level may be maintained (i.e., not increased) as the videore-enters a visible area of the display.

FIG. 8 shows a flowchart of a method for associating one or more videosin response to user input. While the various steps in this flowchart arepresented and described sequentially, one of ordinary skill willappreciate that some or all of the steps may be executed in differentorders and some or all of the steps may be executed in parallel.Further, in one or more embodiments of the invention, one or more of thesteps described below may be omitted, repeated, and/or performed in adifferent order. Accordingly, the specific arrangement of steps shown inFIG. 8 should not be construed as limiting the scope of the invention.

In STEP 800, a first account of a user of a social media platform isidentified. In STEP 805, based on the first account, a stream of contentincluding a set of videos is displayed on a display screen. In one ormore embodiments of the invention, the set of videos correspond to oneor more connected accounts which are connected to the first account in aconnection graph of the social media platform. The content may alsoinclude one or more images, videos, messages, advertisements, offers,recommendations, reviews, promoted messages, promoted accounts, promotedvideos, and/or other content relevant to the social media platform.

In STEP 810, a selection of a UI element associated with at least one ofthe videos is received. The UI element may be a hyperlink, icon, button,or other element designed for replying to the video(s). Thus, forexample, a user may select a hyperlink labeled “reply to this video”under a video shown in the stream.

In STEP 815, a selected video is attached to the video(s) associatedwith the UI element. In one or more embodiments of the invention, theuser is presented with a user interface for capturing a new video orselecting an existing video. Then, the one or more selected videos areattached to the video(s) associated with the UI element. Attaching thevideos may include maintaining a reference between the videos, taggingthe videos, and/or using one or more portions of the videos to generatea combined video. The attaching of the videos may be performed by themobile device (e.g., by rendering module (110) of FIG. 1, discussedabove), or by a remote server (e.g., by remote processing module (155)of FIG. 1, discussed above).

In STEP 820, at least a portion of the selected video and the video(s)associated with the UI element are displayed in a single looping videovignette. For example, after combining the videos into a single videovignette, the combined video vignette may be streamed and/or downloadedto one or more mobile devices. Various different accounts of a socialmedia platform may be selected for viewing the combined video vignettebased on their relationships (e.g., based on a predefined degree ofseparation in a connection graph) with the source accounts of the videosincluding in the single looping video vignette.

FIG. 9 shows a flowchart of a method for creating a combined videovignette. While the various steps in this flowchart are presented anddescribed sequentially, one of ordinary skill will appreciate that someor all of the steps may be executed in different orders and some or allof the steps may be executed in parallel. Further, in one or moreembodiments of the invention, one or more of the steps described belowmay be omitted, repeated, and/or performed in a different order.Accordingly, the specific arrangement of steps shown in FIG. 9 shouldnot be construed as limiting the scope of the invention.

In STEP 900, a first video (e.g., a video vignette, or a segment of avideo vignette) is received from a first mobile device at a firstlocation. In STEP 905, a second video (e.g., a video vignette or asegment of a video vignette) is received from a second mobile device ata second location. The first video and the second video may be receivedat different times and/or from different locations.

In STEP 910, it is determined whether the first location is within apredefined proximity of the second location. If it is determined thatthe first location is within the predefined proximity of the secondlocation, the process proceeds to STEP 915. If it is determined that thefirst location is not within the predefined proximity of the secondlocation, the process ends. The predefined proximity may be adjustedbased on the accuracy of the location data, in accordance with variousembodiments of the invention. Furthermore, object recognition may beused to estimate a location of one or more videos. For example, if avideo is obtained from a location in Paris (as determined based on aninternet protocol (IP) address or a cellular telephone number), thevideo may be scanned for recognition of common landmarks such as theEiffel Tower. In this example, if a match is made, the location of thevideo is estimated as an address of the Eiffel Tower.

In STEP 915, it is determined whether the first video was recordedwithin a predefined time window of the second video. If it is determinedthat the first video was recorded within the predefined time window, theprocess proceeds to STEP 920. If it is determined that the first videowas not recorded within the predefined time window, the process ends.STEPS 910 and 915 may be performed concurrently and/or in any order, inaccordance with various embodiments of the invention. In one or moreembodiments, the location(s) and/or time(s) of the first video and/orsecond video(s) may be obtained prior to, during, and/or after receivingthe video(s) from their respective mobile devices.

In STEP 920, a combined video vignette including the first video and thesecond video is created. In STEP 925, the combined video vignette isdisplayed to one or more users of a social media platform. Locationbased data, graph data (e.g., from connection graph repository (160) ofFIG. 1, discussed above), preference data, and/or other relevant datamay be used to determine which users should receive the combined videovignette. For example, the combined video vignette may be included inthe content streams of one or more users within a predefined proximityof the location. In another example, the combined video vignette may beincluded in the content streams of one or more other users who werepresent within a predefined proximity of the location at some point intime (e.g., at the recording time of the video(s)), regardless ofwhether they captured any video at the time. In this example, locationinformation captured from a mobile device of each user may be used todetermine their location.

The following section describes various examples of the invention. Theexamples are included to aid in the understanding of the invention butare not intended to limit the scope of the invention.

FIG. 10 depicts an example of a screenshot of a mobile device (1000). Inthe example of FIG. 10, a mobile application enters video capture modeand displays a live stream of video from a camera of the mobile device(1000). The user initiates recording of a video vignette by pressing andholding anywhere on the touch sensitive display. When the user releasescontact with the display, recording is stopped. When the user pressesand holds contact with the display, recording of a new video segmentbegins. The total elapsed time of the video vignette is represented by aprogress indicator (1010) at a bottom of the display screen.

FIG. 11 depicts an example of a screenshot of a mobile device (1100). Inthe example of FIG. 11, a user of a mobile application records a set ofsegments of a video vignette and saves the pending video vignette as adraft. The user then relaunches the mobile application and enters avideo capture mode in order to resume recording of the video vignette. Aset of previously recorded segments of the video vignette arerepresented by an ordered list of thumbnail images (1105, 1110, 1115).The user then records a new segment. Upon ending the recording of thenew segment, the mobile application displays an animation showing arepresentation of the video vignette (e.g., a first or last frame)sliding from the area of the live video stream (1125) into a new element(1120) at a head of the ordered list. FIG. 11 depicts the animation andthe creation of the new thumbnail image (1120).

FIG. 12 depicts an example of a screenshot of a mobile device (1200). Inthe example of FIG. 12, a user launches a mobile application and astream of content associated with an account of the user in a socialmedia platform is displayed to the user. In this example, the user“follows” a set of other accounts in the social media platform, and thecontent displayed in the user's stream includes user-generated contentpushed from those accounts to the mobile device in real time. In thisexample, a video (1205) is presented in the user's stream, along with ahyperlink at a bottom of the video labeled “Video Reply”. The userselects the hyperlink and a window is displayed showing one or morevideos stored locally in a storage of the mobile device (1200). The userselects a video and the video is uploaded to a server of the socialmedia platform. A remote processing module (e.g., remote processingmodule (155) of FIG. 1, discussed above) then renders a combined video(a looping video vignette), and includes the new looping video vignettein the user's stream, the stream of the account of the original video,as well as the streams of one or more other accounts having a predefinedgraph relationship with the two accounts. This process of replying tothe video is then repeated to create additional combined looping videovignettes with additional replies posted by other users of the socialmedia platform. In this way, longer and longer looping video vignettesare created and shared with a growing network of accounts of the socialmedia platform. The combined video vignette(s) is also shared with oneor more additional users based on location information of one or moresegments of the video vignette, and/or location information of users inproximity of the recording of the segment(s).

FIG. 13 depicts an example of a screenshot of a mobile device (1300). Inthe example of FIG. 13, a user enters a video capture mode of a mobileapplication and begins recording a new video by pressing and holding ona touch sensitive display of the mobile device showing a live videostream (1325). In this example, the user is viewing a concert in anextremely noisy and low-light setting. As the video records, anapplication module of the mobile application detects that the sound inthe concert hall exceeds a predefined sound threshold (i.e., a highbackground noise limit defined by the frequency levels of the video'ssound). In response to detecting that the sound threshold is exceeded,the mobile application displays a tooltip notification notifying theuser of the high noise environment and asking if a background noisefilter should be applied. In this example, a hyperlink (1305) may beselected with a multi-touch gesture (i.e., while holding a first fingerto continue recording of the video) in order to apply the filter.

Continuing the example, as the video continues recording, theapplication module of the mobile application detects that the lightlevels of the recording video exceeds a predefined low-light threshold.In response to detecting that the low-light threshold is exceeded, themobile application displays a second tooltip notification notifying theuser of the low light environment and asking if a low-light filtershould be applied. In this example, a hyperlink (1310) may be selectedwith a multi-touch gesture (i.e., while holding a first finger tocontinue recording of the video) in order to apply the filter.

Continuing the example, one or more of the selected filters may beapplied at a later time, for example, when the video vignette isfinalized (in response to a user selection). The selected filters may beapplied by a rendering module of the mobile application (e.g., renderingmodule (110) of FIG. 1, discussed above) or may be applied by a remoteserver of the social media platform, in accordance with variousembodiments of the invention. Selection of hyperlinks 1315 and 1320launches a user interface for selecting additional audio and videofilters for application to the video vignette.

Embodiments of the invention may be implemented on virtually any type ofmobile device regardless of the platform being used. In one or moreembodiments of the invention, the mobile device (1400) includes anyportable device that provides a user interface. Examples of mobiledevices may include, but are not limited to, cellular phones, personaldigital assistants, personal communicators, tablet computers,smartphones, or any other computing device. For example, as shown inFIG. 14, a mobile device (1400) includes one or more processor(s)(1402), memory (1404) (e.g., RAM, cache memory, flash memory, etc.), astorage device (1406) (e.g., a hard disk, a solid state drive, anoptical drive such as a compact disk drive or digital video disk (DVD)drive, a flash memory stick, etc.), a subscriber identification module(SIM) card (1408), a speaker (1429), an antenna (1419), a wirelessinterface (1430), a network interface (1432) and numerous other elementsand functionalities typical of mobile devices (not shown).

The mobile device (1400) may include input means and output means, suchas the keyboard (1424), the receiver (1428), and/or the touch sensitivedisplay device (e.g., a touch liquid crystal display screen) (1420),which permits a user to perform gestures (e.g., drag, swipe,multi-touch, select, press and hold, etc.) and enter/display keystrokes(including numeric, alphabetic, and other characters, images, or othermedia types). Other input devices may include a camera (1422), a soundrecorder (1426), and/or other data recording mechanism. Those skilled inthe art will appreciate that these input and output means may take otherforms now known or later developed. Using embodiments of the presentinvention, a consumer may initiate create, edit, and/or share a videovignette using the mobile device (1400).

The mobile device (1400) may be connected to a network (e.g., a localarea network (LAN), a wide area network (WAN) such as the Internet, orany other similar type of network) via the antenna (1419), wirelessinterface (1430), and/or network interface (1432). In one or moreembodiments of the invention, the network connection may be facilitatedby a wireless infrastructure (not shown), including one or moretransceivers cooperating to facilitate wireless communications towireless devices. The wireless infrastructure may include one or morerouters, switches, microwave links, base stations, optical fibers, orother similar networking hardware or software components. For example,the wireless infrastructure may be a paging network, a cellular network,etc. In one or more embodiments of the invention, the wirelessinfrastructure may associate any message received from a mobile device(1400) with a mobile device identifier of the mobile device (1400).

In one or more embodiments of the invention, the network connection maybe facilitated by a hardwired or other similar connection using thenetwork interface (1432). For example, the network connection mayinvolve a hardwire connection or short-range wireless connectivitytechnology with a second mobile device, a printing mechanism, a scanner,or a recording system.

Embodiments of the invention may be implemented on virtually any type ofcomputer regardless of the platform being used. For example, as shown inFIG. 15, a computer system (1500) includes one or more processor(s)(1502) (such as a central processing unit (CPU), integrated circuit,hardware processor, etc.), associated memory (1504) (e.g., RAM, cachememory, flash memory, etc.), a storage device (1506) (e.g., a hard disk,an optical drive such as a compact disk drive or digital video disk(DVD) drive, a flash memory stick, etc.), a network adapter (1518), andnumerous other elements and functionalities typical of today's computers(not shown). One or more components of the computer system (1500) may becommunicatively connected by a bus (1516). The computer system (1500)may also include input means, such as a display device (1512) (e.g., acapacitive touchscreen display or other touch sensitive display),keyboard (1508), a mouse (1510), or a microphone (not shown). Further,the computer system (1500) may include output means, such as the displaydevice (1512) (e.g., a liquid crystal display (LCD), a plasma display,an active-matrix organic light-emitting diode (AMOLED) display, etc.).The computer system (1500) may be connected to a network (1514) (e.g., alocal area network (LAN), a wide area network (WAN) such as theInternet, or any other type of network) via the network adapter (1518).Those skilled in the art will appreciate that many different types ofcomputer systems exist, and the aforementioned input and output meansmay take other forms. Generally speaking, the computer system (1500)includes at least the minimal processing, input, and/or output meansnecessary to practice embodiments of the invention.

Further, in one or more embodiments of the invention, one or moreelements of the aforementioned computer system (1500) may be located ata remote location and connected to the other elements over a network.Further, embodiments of the invention may be implemented on adistributed system having a plurality of nodes, where each portion ofthe invention (e.g., remote processing module (155), connection graphrepository (160), video repository (165), etc. of FIG. 1, discussedabove) may be located on a different node within the distributed system.In one embodiment of the invention, the node corresponds to a computersystem. Alternatively, the node may correspond to a processor withassociated physical memory. The node may alternatively correspond to aprocessor or micro-core of a processor with shared memory and/orresources.

Further, one or more elements of the above described system components(e.g., remote processing module (155), application module (105),rendering module (110), and/or UI module (115) of FIG. 1, discussedabove) can be implemented as software instructions in the form ofcomputer readable program code stored, temporarily or permanently, onone or more non-transitory computer readable storage media. Thenon-transitory computer readable storage media are executable by one ormore computer processors to perform the functionality of one or morecomponents of the above-described systems (e.g., FIG. 1) and/orflowcharts (e.g., FIGS. 2-9), in accordance with various embodiments ofthe invention. Examples of non-transitory computer-readable media caninclude, but are not limited to, compact discs (CDs), flash memory,solid state drives, random access memory (RAM), read only memory (ROM),electrically erasable programmable ROM (EEPROM), hard disk drives,digital versatile disks (DVDs) or other optical storage, and any othercomputer-readable media excluding transitory, propagating signals.

One or more embodiments of the invention have one or more of thefollowing advantages. By enabling a user to capture, modify, and/orshare video using one or more of the disclosed systems and/or methods(e.g., press and hold, etc.), it may be possible to provide a moreintuitive, less error-prone, and more efficient user interface for videocapture, modification, and/or sharing. Furthermore, by compiling a setof short, contiguous video segments into a video vignette, it may bepossible to enable users to concisely convey a message, sentiment,and/or depiction of events.

While the invention has been described with respect to a limited numberof embodiments, those skilled in the art, having benefit of thisdisclosure, will appreciate that other embodiments can be devised whichdo not depart from the scope of the invention as disclosed herein.Accordingly, the scope of the invention should be limited only by theattached claims.

What is claimed is:
 1. A computer-implemented method comprising:receiving a first video from a first mobile device, the first videorecorded at a first location; receiving a second video from a secondmobile device, the second video recorded at a second location;performing a first determination of whether the first location is withina predefined proximity of the second location; performing a seconddetermination of whether the first video was recorded within apredefined time window of the second video; and in response to the firstand second determinations being affirmative, creating a combined videovignette including the first and second videos.
 2. Thecomputer-implemented method of claim 1, wherein the first video isreceived while the first device is at the first location, and whereinthe second video is received while the second device is at the secondlocation.
 3. The computer-implemented method of claim 1, furthercomprising adjusting the predefined proximity in the first determinationbased on an accuracy of location data for at least one of the firstlocation or the second location.
 4. The computer-implemented method ofclaim 1, further comprising performing object detection to estimate atleast one of the first location or the second location.
 5. Thecomputer-implemented method of claim 1, wherein the combined videovignette is associated with a set of thumbnail images, thecomputer-implemented method further comprising: triggering display, at aclient device, of a first thumbnail image of the set of thumbnail imagesin a scroll area as a representation of the combined video vignette;detecting, at the client device, a scroll input associated with thescroll area; and while scrolling the representation of the combinedvideo vignette through the scroll area in response to detecting thescroll input, triggering display, as the representation of the combinedvideo vignette, of a second thumbnail image of the set of thumbnailimages according to a change in a position of the combined videovignette within the scroll area from a first position within the scrollarea to a second position within the scroll area different from thefirst position within the scroll area.
 6. The computer-implementedmethod of claim 1, wherein at least one of the first video or the secondvideo is a looping video vignette.
 7. The computer-implemented method ofclaim 6, wherein recording the looping video vignette comprisesrecording of a moving video buffer, recording of a video segment inresponse to detecting a press and hold gesture, and creating the loopingvideo vignette using the video segment and the moving video buffer,wherein the looping video vignette comprises a transitional segmentconstructed by blending portions of the video segment with portions ofthe moving video buffer.
 8. The computer-implemented method of claim 1,wherein playback of the combined video vignette is initiated at one ormore of the first or second mobile devices.
 9. The computer-implementedmethod of claim 8, wherein the combined video vignette is at leastpartially within a scroll area of a display screen, wherein the videovignette is scrolled in at least a portion of the scroll area, andwherein, in response to the scrolling, an audio level of the videovignette is controlled according to a position of the video vignette inthe scroll area.
 10. The computer-implemented method of claim 1, whereinin response to at least one of the first determination or the seconddetermination being negative, the combined video vignette is notcreated.
 11. A non-transitory computer readable medium includinginstructions that when executed by at least one processor cause theprocessor to perform operations comprising: receiving a first video froma first mobile device, the first video recorded at a first location;receiving a second video from a second mobile device, the second videorecorded at a second location; performing a first determination ofwhether the first location is within a predefined proximity of thesecond location; performing a second determination of whether the firstvideo was recorded within a predefined time window of the second video;and in response to the first and second determinations beingaffirmative, creating a combined video vignette including the first andsecond videos.
 12. The non-transitory computer readable medium of claim11, wherein the operations further comprise adjusting the predefinedproximity in the first determination based on an accuracy of locationdata for at least one of the first location or the second location. 13.The non-transitory computer readable medium of claim 11, wherein theoperations further comprise performing object detection to estimate atleast one of the first location or the second location.
 14. Acomputer-implemented method comprising: recording a first video at afirst location using a first mobile device; providing the first video toa computer system, wherein the computer system also receives a secondvideo recorded at a second location using a second mobile device, andwherein the computer system, in response to determining that the firstlocation is within a predefined proximity of the second location andthat the first video was recorded within a predefined time window of thesecond video, creates a combined video vignette including the first andsecond videos; and receiving, by the first mobile device, the combinedvideo vignette created by the computer system.
 15. Thecomputer-implemented method of claim 14, wherein the first video isprovided to the computer system while the first device is at the firstlocation.
 16. The computer-implemented method of claim 14, wherein thecombined video vignette is associated with a set of thumbnail images,the computer-implemented method further comprising: triggering display,at the first mobile device, of a first thumbnail image of the set ofthumbnail images in a scroll area as a representation of the combinedvideo vignette; detecting, at the first mobile device, a scroll inputassociated with the scroll area; and while scrolling the representationof the combined video vignette through the scroll area in response todetecting the scroll input, triggering display, as the representation ofthe video vignette, of a second thumbnail image of the set of thumbnailimages according to a change in a position of the combined videovignette within the scroll area from a first position within the scrollarea to a second position within the scroll area different from thefirst position within the scroll area.
 17. The computer-implementedmethod of claim 14, wherein the first video is a looping video vignette.18. The computer-implemented method of claim 17, wherein recording thelooping video vignette comprises: entering a video capture mode of thefirst mobile device; initiating, by the first mobile device, recordingof a moving video buffer in response to entering the video capture mode;detecting, by the first mobile device and after initiating recording ofthe moving video buffer, a first press and hold gesture performed by auser on a touch sensitive display of the mobile device; initiating, bythe mobile device, recording of a first video segment in response todetecting the first press and hold gesture, wherein recording of thefirst video segment continues while the user maintains the first pressand hold gesture; detecting, by the mobile device, that the user hasreleased the first press and hold gesture; stopping, by the mobiledevice, recording of the first video segment in response to detectingthat the user has released the first press and hold gesture; andcreating, by the mobile device and after stopping recording of the firstvideo segment, the looping video vignette using the first video segmentand the moving video buffer, wherein the looping video vignettecomprises a transitional segment constructed by blending portions of thefirst video segment with portions of the moving video buffer.
 19. Thecomputer-implemented method of claim 14, further comprising initiatingplayback of the combined video vignette at the first mobile device. 20.The computer-implemented method of claim 19, wherein the combined videovignette is at least partially within a scroll area of a display screen,the computer-implemented method further comprising: initiating playbackof the combined video vignette at least partially within a scroll areaof a display screen; scrolling the combined video vignette in at least aportion of the scroll area; and controlling, in response to thescrolling, an audio level of the video vignette according to a positionof the video vignette in the scroll area.